package cn.design;

import cn.design.realize.CocaCola;
import cn.design.realize.Cola;
import cn.design.realize.Factory;
import cn.design.realize.PepsiCola;

/**
 * @author dlq
 * @description 测试类 --- 普通工厂
 * @date 2020/9/10 9:35
 * @since 1.0
 */
public class OrdinaryFactoryTest {


    public static void main(String[] args) {
        //1. CocaCola  和   PepsiCola  是 Cola 的实现类
        //2. CocaCola  和   PepsiCola 是真正提供可乐的这个产品(具实现),
        //3. Factory 是一个具体的工厂,通过不同的参数 返回 不同的Cola的实现
        //4.  通过Factory 获取 可乐,(真正需要的类)
        Cola cola = Factory.getCola(new CocaCola());
        cola.produce();

        Cola cola2 = Factory.getCola(new PepsiCola());
        cola2.produce();

        /*
        总结：
        普通工厂：工厂方法模式只考虑生产同等级(同种类)的产品
        */
    }
}
